x11: Fix dnd coordinate handling
authorMatthias Clasen <mclasen@redhat.com>
Sat, 22 Feb 2020 23:44:55 +0000 (18:44 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 23 Feb 2020 00:10:16 +0000 (19:10 -0500)
We were not properly converting the coordinates we
got to root coordinates. This was showing up as offsets
between the actual drop target and the area where drops
can happen, e.g. when dragging over a stack switcher
to switch pages.

gdk/x11/gdkdrag-x11.c

index c2bd36682a299295ff7047f8461cb7e8c25f2532..04fa753fa38a63f7d3d6b36c06ed252de226c21b 100644 (file)
@@ -2073,8 +2073,12 @@ _gdk_x11_surface_drag_begin (GdkSurface         *surface,
   precache_target_list (drag);
 
   gdk_device_get_position (device, &px, &py);
-  x_root = round (px) + dx;
-  y_root = round (py) + dy;
+
+  gdk_x11_surface_get_root_coords (surface,
+                                   round (px) + dx,
+                                   round (py) + dy,
+                                   &x_root,
+                                   &y_root);
 
   x11_drag->start_x = x_root;
   x11_drag->start_y = y_root;